<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>没写完</title>
</head>
<body>

</body>

<script>

    //Number.isFinite()
    //首先一定要是数字，它不会将字符串先转换成一个数值，然后判断是不是一个有限的数字
    //如果是数值，那么返回一个true，如果不是就返回一个false

    //Number.isNaN()
    //判断是不是一个非数值的的，如果不是数值就返回true，如果是数值就返回false
    //不会将字符串先转换成数字，如果是字符串它直接判断成false
    //就是说只要不是数值都返回一个true，只有数值返回false

    //正常的全局匹配是先把不是数字的转换成数值，就是讲字符串里面的数字转黄成数字，再进行判断。

    //Number.parseInt(),将字符串转换成整数
    //Number.parseFloat()，将字符串转换成浮点数

    //Number.isInteger() 判断一个数值是不是整数
    //返回true或者false 注意一点如果小数点后面是零的话返回的也是true
    //也不会转换字符串，对除了数字整数之外返回的都是false

    //Number.isInteger()判断一个数是不是整数
    //js-整数范围-2^53到2^53之间  不包括最大和最小那个两个，是这个范围之内的 ，超过这个范围，无法精确表示这个值。
    //如果超过这个最小的或者这个最大的，他就会一律按最小那个或者最大那个算，这个会导致得到的数值是错误的
    //这个时候需要使用Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER 用来设置上限和下限

    //可以配合Number.isSafeInteger()使用，不仅可以判断我们这个数是不是在我们设置的范围里面，而且还会判断这个数值是不是数字；
    //针对字符串不会转换，判断为非数字，返回一个false
    //针对null（空值）也是返回一个false
    //就是说只有是一个真正的数字而且是整数才返回一个true
    //如果数字大于最大值或者小于最小值，那么会被当做一个最大或者最小的值被进行运算


    //Math（数学函数）对象的扩展

    //Math.trunc()  去掉小数部分，进行取整，不会向上取整或者向下取整，而是直接去掉小数的部分
    //而且里面会将所有类型转换成Number类型然后进行一个取整
    Math.trunc('555');//555
    Math.trunc(true);//1
    Math.trunc(false);//0
    Math.trunc(null);//0
    //math.trunc（）会将布尔值，字符串 ，空，全部转换成数字类型，然后进行一个处理
    //而对于那先没办法取整的值，会返回一个nan（非数字）
    //比如 nan  ‘qq’ undefined
    //math.trunc（）部署环境
    Math.trunc = Math.trunc || function(x) {
        return x < 0 ? Math.ceil(x) : Math.floor(x);
    };


    //math.sign（） 判断一个数到底是正数还是负数或者零，会对非数字进行一个转换
    //返回值 正数+1 负数-1 零返回零  其他没办法转换的就是非数字（nan）
    //环境部署
    Math.sign = Math.sign || function(x) {
        x = +x;
        if (x === 0 || isNaN(x)) {
            return x;
        }
        return x > 0 ? 1 : -1;
    };

    //Math.cbrt()计算一个数的立方根
    //也是先转数值，然后再进行判断，然后计算它的立方根，
    //如果不是数字返回一个非数值（nan）
    //写法：Math.cbrt(传入一个参数)


    //Math.hypot()计算参数的平和根的和
    //可以接受很多的参数，开始也是先转换成数值。
    // 但是如果有一个任意一个参数没办法，那就会返回一个非数值（nan）

    //指数运算符（**）
    //写法： （数值）**（几个数值相乘 ）
    //注意 如果是三个比如 2**2**2 他会把后面两先算掉然后再计算第一个跟后面两个的结果
</script>

</html>